package Package.VariadicParameters;

import java.util.Arrays;
import java.util.List;
import java.util.Set;

public class VariadicParameters {
    public static final void VariadicParameters() {
//        变参数【应用】
//可变参数介绍
//可变参数又称参数个数可变，用作方法的形参出现，那么方法参数个数就是可变的了
//可变参数定义格式
//可变参数的注意事项
//这里的变量其实是一个数组
//如果一个方法有多个参数，包含可变参数，可变参数要放在最后
        Demo1 demo = new Demo1();
//        传过来的数据使用数组进行储存
        demo.Demo(10, 20, 30, 100);
//        Arrays工具类中有一个静态方法：
//public static List asList(T... a)：返回由指定数组支持的固定大小的列表
//返回的集合不能做增删操作，可以做修改操作
//List接口中有一个静态方法：
//public static List of(E... elements)：返回包含任意数量元素的不可变列表
//返回的集合不能做增删改操作
//Set接口中有一个静态方法：
//public static Set of(E... elements) ：返回一个包含任意数量元素的不可变集合
//在给元素的时候，不能给重复的元素
//返回的集合不能做增删操作，没有修改的方法
        List<String> list = Arrays.asList("Hello World", "Hello java", "Hello ChangCun");
//        不支持添加和删除操作
        list.set(1, "Hello Chang");
        for (String s : list
        ) {
            System.out.println(s);
        }
        List<String> list1 = List.of("x725Tj6Q0po7D1iNJFSHxggrQ",
                "pXXi5mOufx0d9jKTwlL5sUuqw",
                "ma2ek3fcbW0hnddXKobyfiJ1M",
                "xx4jn2F2OLUMfdV00gkHJLS6W",
                "DVj2G6r79WXQOzEUW0lDtxBls"
        );
//        不支持添加删除等操作
//        list1.set(1,"ChangCun");
//        不支持set此操作
        for (String s:list1
             ) {
            System.out.println(s);
        }
        Set<String> set = Set.of("hello", "world", "java","world1");
//        不支持添加和删除
        for (String s:set
             ) {
            System.out.println(s);
        }

    }

}
